package leetcode;

/**
 * @创建人 MBY381
 * @创建时间 2022/4/22 19:54
 * @描述 暂无
 */
public class Solution24 {


    /**
     * 看不懂
     *
     * @param head tou
     * @return tou
     */
    public ListNode swapPairs1(ListNode head) {
        ListNode dummyHead = new ListNode(0);
        dummyHead.next = head;
        ListNode temp = dummyHead;
        while (temp.next != null && temp.next.next != null) {
            ListNode node1 = temp.next;
            ListNode node2 = temp.next.next;
            temp.next = node2;
            node1.next = node2.next;
            node2.next = node1;
            temp = node1;
        }
        return dummyHead.next;
    }









    public ListNode swapPairs(ListNode head) {
        if(head==null||head.next==null){
            return head;
        }
        ListNode pre=new ListNode(-1);
        ListNode prep=new ListNode(0);
        prep.next=head;
        pre.next=head;
        ListNode curr=head;
        ListNode next=head.next;
        while (next.next.next!=null&&curr.next!=null){
            pre.next=next;
            ListNode temp=next.next;
            next.next=curr;
            curr.next=temp;
            pre=curr;
            next=curr.next.next;
            curr=curr.next;
        }
        return prep.next;
    }
}
